perm filename BRAG[S85,JMC] blob sn#807034 filedate 1985-10-03 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	%brag[s85,jmc]		Self-praise for various purposes
C00016 ENDMK
CāŠ—;
%brag[s85,jmc]		Self-praise for various purposes

	John McCarthy was born in Boston in 1927.  His father was
born in Ireland, immigrated in 1917, and worked at various trades
including carpentry but spent the middle part of his career as
a trade union organizer.  His mother was born in Lithuania of
Jewish parents, immigrated at the age of six, graduated from
Goucher College in Baltimore and worked as a journalist and
as a social worker.

	McCarthy attended high school in Los Angeles, graduated
from Caltech in mathematics in 1948 and received the PhD in
mathematics in 1951 from Princeton University.
  His thesis was on partial differential
equations, and his adviser was Solomon Lefschetz.


	McCarthy remained at Princeton as an instructor for two years
after his PhD and then went to Stanford University as an acting assistant
professor.  He moved to Dartmouth College in 1955, to M.I.T. in
1957 and back to Stanford in 1962 where he remains.

	While still at Caltech in 1949, McCarthy was influenced
by attending the Hixon Symposium on Cerebral Mechanisms in Behavior
to begin thinking about how machines could be made to think.  He
found this a difficult problem and first published on it in 1956
in {\it Automata Studies}, which he co-edited with Claude Shannon, then
of Bell Telephone Laboratories.

	While at Dartmouth his attention shifted from pure mathematics to
artificial intelligence and computer science.  He coined the term
artificial intelligence in connection with the Dartmouth Summer Research
Project on Artificial Intelligence which he organized for the summer of
1956.  This meeting was the first occasion that united most of the
individuals thinking about how to make computers behave intelligently.

	Taking ideas from the IPL language of Allen Newell and Herbert
Simon and from Fortran developed by John Backus at IBM, McCarthy began work
on an algebraic programming language for computation with symbolic
expressions.  The first result was the Fortran List Processing Language of
Gelernter and Gerberich, but the main outcome was the development of LISP
in 1958.

	LISP was not just a synthesis of its antecedents but
introduced many new ideas to computer science.  These
include recursive use of conditional expressions as a form of
programming, the use of list structure representing S-expressions
for both program and data permitting convenient programs that
operate on programs, the use of Church's lambda notation for
representing functions and the first meta-cyclic interpreter.
Within a few years, LISP became the main programming language
used for artificial intelligence and computation with algebraic
expressions.  It is now the second oldest (after Fortran) programming
language in general use.  In the last few years several companies
(Xerox, Symbolics, LMI and Texas Instruments) have marketed computers
specialized for LISP.  Numerous companies specialize in producing
LISP compilers for standard machines, and the Defense Department
has made Common LISP a standard along with ADA for programs
for computers imbedded in military equipment.

	Besides using LISP as a practical programming language, McCarthy
based on it the first ``mathematical theory of computation''.  This theory
permits the writing of specifications for programs in languages of
mathematical logic and permits formal computer-checked proofs that
programs meet their specifications.  McCarthy's 1961 approach to this
problem has been developed by him and others into one of the two main
approaches to proving programs correct.  In the hands of Robert Boyer and
J Moore of the University of Texas it has led to powerful interactive
theorem provers that are on the verge of real usefulness to computer
programmers and to mathematicians.  (The other approach was proposed by
Robert Floyd in 1965, although it had been used in unpublished special
cases by both Allan Turing and John von Neumann).  McCarthy developed the
mathematical theory of computation in series of papers in the 1960s and
1970s.

	While at M.I.T. starting in 1957, McCarthy proposed
a new way of using computers, time-sharing.  Rather than preparing
programs using key punches and then submitting decks of punched
cards, time-sharing involves each user having a terminal in his
office directly connected to the computer.  To the user a
time-sharing computer behaves as if he had a computer of his
own.  He prepares programs and data using editor programs and
keeps the information permanently in the computer's disk storage.
In order to make time-sharing practical, it was necessary to
add to the computers of that day features that have since become
standard.  These include the following. Memory protection
prevents an erroneous program from damaging other programs.
Memory relocation allows a program to be located anywhere
the operating system finds space for it on its successive runs.
Replacing all instructions that can stop the computer by interrupts
to the operating system is also required to prevent erroneous
programs from affecting other users.  Direct input-output
instructions in ``user mode'' need to be inhibited and replaced
by calls to the operating system.  All input and output needs to
result in interrupts, so that the operating system can handle
input and output asynchronously with the users' computations.
McCarthy was the first to propose that an integrated package of such
features was required for time-sharing.

	McCarthy began proposing that M.I.T. switch to this way
of using computers in 1957, but the first presently available
document is an internal memo dated January 1, 1959.  In it
McCarthy proposed that M.I.T. enlist IBM's co-operation in
developing a time-sharing system for the forthcoming IBM 7090.
McCarthy's proposals were further developed by others and
contributed to the CTSS time-sharing system for the IBM 7090
built under the direction of Fernando J. Corbato.

	However, the first time-sharing system to actually operate was
developed under McCarthy's direction for the Digital Equipment Corporation
PDP-1 computer at Bolt Beranek and Newman.  The project was sponsored by
NIH, and McCarthy's co-authors were J.C.R. Licklider, Sheldon Boilen and
Edward Fredkin.  The system began working in the summer of 1962.

	McCarthy has always regarded his work on LISP, mathematical
theory of computation, and time-sharing as secondary to his
main scientific interest --- artificial intelligence.

	His first approach was through automata theory and information
theory starting in 1949.  It involved a measure of the amount of
information about its environment and automaton could collect.
Since it didn't seem to relate much to actual common sense knowledge
and behavior, it was abandoned without publication.  The second
approach led to the 1956 paper ``Inversion of functions defined
by Turing machines'' but was abandoned for the same reason.  In
1957 McCarthy started on a chess program and invented the alpha-beta
and killer heuristics, which are still used today in chess programs.
However, his talents were more suited to theory than to making large
programs, and he didn't continue his work on games except to direct
student work.

	McCarthy's greatest scientific contribution is the ``reasoning
program'' approach to artificial intelligence pioneered in his 1960 paper
(given at a 1958 conference) ``Programs with common sense''.  This
approach involves representing facts about the world and the problem the
program is to solve as sentences of mathematical logic.  The program then
must use directed search procedures in order to deduce that a certain
course of action will achieve the goal.

	This logic-based approach to artificial intelligence has
proved very difficult to implement, but so have all the others.
Others, in fact, have turned out to be special cases of the logic-based
approach.  At present logic based approaches to AI are increasingly
popular.

	In the 1960s McCarthy developed the ``situation calculus''
formalism for representing the effects of actions.  Much of the
work in making AI programs that plan sequences of actions to achieve
goals is based on situation calculus or its variants.

	In the 1970s McCarthy developed the ``circumscription'' method
of non-monotonic reasoning as an supplement to logical deduction
in reasoning programs.  It has proved the most widely accepted of the
three methods proposed in that decade, and many papers have followed
McCarthy's 1980 paper.  (1980, 1985).

	In the 1960s and 70s McCarthy developed logical formalisms for
representing facts about people's and programs' knowledge.  This field has
recently become popular.
\vfill
\end